Electronic image management and display has increased tremendously the last decades, and today it is possible to view digital photographs, films, TV shows and other multimedia video and image sources on vastly different media rendering machines and equipment. Traditionally such machines have been computers, but portable and handheld devices, such as laptops, Personal Digital Assistances (PDAs), dedicated media players and mobile telephones, may today be used for viewing images and video. These image managing and rendering devices differ widely in their image processing and displaying capabilities. For example, the display screens available for the different image rendering devices may range from relatively small screen sizes in some mobile telephones, to medium sized screens in PDAs and certain mobile telephone models to the relatively large screens found with computers and laptops.
Due to these different capabilities, image scaling has become a basic and ever more vital part of the multimedia capabilities of the rendering terminal, in particular mobile terminals. Image scaling is, for example, often performed when trying to watch a JPEG (Joint Photographic Experts Group) image that is larger than the screen (in terms of pixels or image elements), or when displaying a video sequence having a format that is too big or too small for the screen.
Even though the resolution of the screens on mobile terminals and telephones is rising quickly, the camera resolutions of these terminals are rising at least as fast. In addition, other camera equipped devices, such as digital cameras, have camera resolutions of much higher resolution levels. This means that there is a need for downscaling (minification) of images and this need will increase further within a foreseeable future. Since the size used in video telephony is more dependent on bandwidth requirements than of screen resolution, it is reasonable to think that it may increase slower than screen resolutions. Thus, in the near future if one wants full screen video telephony, efficient upscaling (magnification) algorithms will be required.
Today different algorithms for image scaling exist, with nearest neighbor being among the simpler ones. The nearest neighbor technique is used, for instance, in the LG U8110 mobile telephones. These simpler scaling techniques are, however, marred by low image quality and the insertion of image artifacts. For example, the nearest neighbor scaling in the above-mentioned mobile telephone gives rise to clearly visible pixilation and anti-aliasing artifacts.
Scaling images in a more correct or less error prone manner becomes more expensive and demanding in terms of scaling time, memory requirements and power consumption, all of which are sparse in thin clients such as mobile telephones.
A reasonable trade-off between quality and complexity for image downscaling is reached by performing by a pre-filtering, for instance box filtering, repeatedly to halve the image resolution until it is less than two times larger than the target resolution. Then bilinear interpolation can be performed to downscale the image to exactly the target resolution. For example, if the original image size is 1024×768 pixels and the target size is 176×144 pixels, prefiltering averages the image in the steps 512×384 and 256×192. After that, bilinear filtering can be performed to go from 256×192 to 176×144.
However, the image quality when performing box filtering and bilinear interpolation is not free of artifacts. Depending on how much the last bilinear filtering step minimizes (downscales) the image, the resulting image may become blurry (if close to the prefiltered image resolution) or show aliasing artifacts (if far from the prefiltered image resolution).
Mathematically, the ideal way of magnifying or minifying an image is to reconstruct it using a sinc function. If the original image signal is band limited, magnification with a sinc function can reconstruct the original signal perfectly. Thus, in order to create a “perfect” image scaling algorithm, it would suffice to filter the image using sinc filters. However, there are two major problems with this approach. Firstly, sinc filters are very long as their tails die off proportionally to 1/x. This means that the filters used have to be very long and include many filter coefficients, which gives an inefficient and computationally expensive implementation. Secondly, even if such long filters would be calculated, the end result would not look very nice at all. This is due to the fact that image signals are not really band limited. For instance, a sinc filter will interpret a sharp edge as really being a ringing pattern ondulating before and after the edge, since this is the only magnified band limited signal that fits the data. This simply does not look good and for this reason sinc filters are generally not used in the art of scaling of images.
Mitchell and Netravali [1] show a bicubic filter resulting in visually more attractive scaled images than since filters. Their bicubic filters are also less computationally expensive to implement as compared to sinc functions. However, even if less complex than traditional sinc filtering, the bicubic filter is still complicated and complex enough to be a problem to calculate, especially for thin clients having limited image processing and storing capabilities and limited power supply.
There is thus a need for an image scaling algorithms that is less computationally expensive than the prior art high quality techniques but still provides adequate image quality.